package com.ruoyi.system.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.FdProductType;
import com.ruoyi.system.mapper.FdProductTypeMapper;
import com.ruoyi.system.service.IFdProductTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class FdProductTypeServiceImpl implements IFdProductTypeService {

    @Autowired
    private FdProductTypeMapper fdProductTypeMapper;

    /**
     * 查询用户信息
     *
     * @param typeId 用户信息主键
     * @return 用户信息
     */
    @Override
    public FdProductType selectFdProductTypeByTypeId(Long typeId)
    {
        return fdProductTypeMapper.selectFdProductTypeByTypeId(typeId);
    }

    /**
     * 查询用户信息列表
     *
     * @param fdProductType 用户信息
     * @return 用户信息
     */
    @Override
    public List<FdProductType> selectFdProductTypeList(FdProductType fdProductType)
    {
        return fdProductTypeMapper.selectFdProductTypeList(fdProductType);
    }

    /**
     * 新增用户信息
     *
     * @param fdProductType 用户信息
     * @return 结果
     */
    @Override
    public int insertFdProductType(FdProductType fdProductType)
    {
        fdProductType.setCreateTime(DateUtils.getNowDate());
        return fdProductTypeMapper.insertFdProductType(fdProductType);
    }

    /**
     * 修改用户信息
     *
     * @param fdProductType 用户信息
     * @return 结果
     */
    @Override
    public int updateFdProductType(FdProductType fdProductType)
    {
        fdProductType.setUpdateTime(DateUtils.getNowDate());
        return fdProductTypeMapper.updateFdProductType(fdProductType);
    }

    /**
     * 批量删除用户信息
     *
     * @param typeIds 需要删除的用户信息主键
     * @return 结果
     */
    @Override
    public int deleteFdProductTypeByTypeIds(Long[] typeIds)
    {
        return fdProductTypeMapper.deleteFdProductTypeByTypeIds(typeIds);
    }

    /**
     * 删除用户信息信息
     *
     * @param typeId 用户信息主键
     * @return 结果
     */
    @Override
    public int deleteFdProductTypeByTypeId(Long typeId)
    {
        return fdProductTypeMapper.deleteFdProductTypeByTypeId(typeId);
    }

    @Override
    public boolean checkTypeNameUnique(FdProductType fdProductType) {
        Long typeId = fdProductType.getTypeId() == null ? -1L : fdProductType.getTypeId();
        Long count = fdProductTypeMapper.checkTypeNameUnique(fdProductType.getTypeName());
        return count>0L && !typeId.equals(fdProductTypeMapper.selectProductTypeIdByTypeName(fdProductType.getTypeName()));
    }
}
